package modules.hifix;

import java.util.ArrayList;
import java.util.List;

import com.beust.jcommander.Parameter;

/**
 * Handles all regular application parameters for hifix Module. Used for parameter parsing for hifix module.
 * @author Raja Hashim Ali.
 */
public class Parameters {

	/** Required parameters: Application/Module to run */
	@Parameter(description = "<FASTAFILE : protein sequences to be clustered in a fasta file> <NETFILE : network output from SiLiX clustering (extension .net)> <FNODESFILE : clustering from SiLiX (extension .fnodes)>")
	public List<String> files = new ArrayList<String>();
	
	/** Help. */
	@Parameter(names = {"-h", "--help"}, description = "Display help. To understand the options and input parameters, use help.")
	public Boolean help = false;
	
	/** Path for finding the data and outputting results */
	@Parameter(names = {"-p","--path"}, description = "Path for finding the data and outputting results.")
	public String path = "./";
	
	/** Name of clustering output file without extension (.hcl is used by default) */
	@Parameter(names = {"-o","--output"}, description = "Name of hcluster output file without extension (.hcl is used by default).")
	public String output = "HomoCompara";	
	
	/** Resource path, where this module can find hcluster executable file */
	@Parameter(names = {"-rp","--resourcepath"}, description = "Hcluster resource path, where this module can find hcluster executable file. ")
	public String resourcepath = "./";
	
	/** execute Conversion Only */
	@Parameter(names = {"-e","--executeconversiononly"}, description = "execute conversion from hifix to blastclust results only.")
	public boolean executeconversiononly = false;
}
